AWS Control Towerでdeclarative policies(宣言型ポリシー)の適用をやってみた #AWSreInvent
re:Invent2024に参加している。たかやまです。
こちらのブログでも紹介されている通りControl Towerでもdeclarative policies(宣言型ポリシー)が利用できるようになりました。
上記ブログ執筆段階ではこちらの機能をためすことまではできなかったのですが、現在こちらの機能を試すことができるようになりましたので、その内容を共有いたします。
宣言型ポリシーまわりの発表情報はこちらのブログを参考にしていただければと思います。
- [アップデート] AWS Organizations で宣言型ポリシー(declarative policies) が利用可能になりました #AWSreInvent | DevelopersIO
- Declarative policies for EC2 (EC2 の宣言型ポリシー) において OU にアタッチしているポリシーとは異なるポリシーをアカウントにアタッチして例外設定にしてみた #AWSreInvent | DevelopersIO
- 【アップデート】新たに発表されたdeclarative policies(宣言型ポリシー)をためしてみた #AWSreInvent | DevelopersIO
- declarative policies(宣言型ポリシー)のベストプラクティスをまとめてみた #AWSreInvent | DevelopersIO
Control Towerにおける宣言型ポリシー
Control Towerで現在サポートされている宣言型ポリシーはこちらです。
- [CT.EC2.PV.7] Amazon EBSスナップショットのパブリック共有をすべて禁止する
- [CT.EC2.PV.8] インターネットゲートウェイ (IGW) または出力専用インターネットゲートウェイ (EIGW) を介した VPC へのインバウンドおよびアウトバウンドのインターネット接続を禁止する
- [CT.EC2.PV.9] すべてのEC2インスタンスのEC2シリアルコンソールへのアクセスを禁止する
- [CT.EC2.PV.11] Amazon マシンイメージ (AMI) の公開共有を禁止する
Controls implemented with declarative policies - AWS Control Tower
Organizationsのdeclarative policiesと比べると、現時点では Instance Metadata Defaults
とAllowed Images Settings
のポリシーがサポートされていないようですね
上記4つに比べて設定項目を投入する要素[1]があるので、一旦は公開の有効/無効化設定レベルの簡単なポリシーがサポートされている雰囲気を感じます。
Declarative policies - AWS Organizations
やってみた
実際にやってみたいと思います。
「すべてのコントロール」 > フィルター 実装 = Declarative policy for EC2
で検索すると現時点でサポートされている宣言型ポリシーコントロールの一覧を確認することができます。
ここでは[CT.EC2.PV.9] すべての EC2 インスタンスのために、EC2 シリアルコンソールへのアクセスを禁止する
を試してみます。
設定は非常にシンプルで 「有効にする」から適用する「組織単位」を指定するだけです。
コントロール適用後、Organizationsから宣言型ポリシーを確認すると、AWSControlTower-Controls-
のプレフィックスがついたポリシーが作成されていることが確認できます。
ポリシーの内容は以下の通りで、カスタムエラーメッセージとしてControl Towerで管理されている旨を表示するexception_message
がすでに設定されていることが確認できます。
{
"ec2_attributes": {
"serial_console_access": {
"status": {
"@@assign": "disabled",
"@@operators_allowed_for_child_policies": [
"@@all"
]
}
},
"exception_message": {
"@@assign": "This action is blocked by a declarative policy that is managed by AWS Control Tower. For details, contact the administrator for your organization."
},
"image_block_public_access": {
"state": {
"@@assign": "block_new_sharing",
"@@operators_allowed_for_child_policies": [
"@@all"
]
}
}
}
}
最後に
改めてControl Towerで宣言型ポリシーが利用できるようになったことを確認しました。
最初利用できないと聞いた時は「東京リージョン対象外か?」などと思いつつ、バージニア北部のControl Towerを用意していましたが、無事に東京リージョンで動作を確認することができてよかったです!
Control Towerでも宣言型ポリシーが利用できるのは素直に嬉しいですね。
この記事が誰かのお役に立てれば幸いです。
以上、たかやま(@nyan_kotaroo)でした。
インスタンスメタデータサービスの優先度だったりAMIプロバイダーの指定だったり ↩︎